package de.hdu.pms.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import de.hdu.pms.model.Mitarbeiter;

/**
 * @author BBV
 * 
 *         model class Krankheit
 */

@Entity
@Table(name = "krankheit")
public class Krankheit {

	/**
	 * primary key:
	 * <ul>
	 * <li>krankheit_id in the database</li>
	 * <li>automatic generated value</li>
	 * </ul>
	 */
	@Id
	@GeneratedValue
	@Column(name = "krankheit_id")
	private Integer id;

	@Temporal(TemporalType.DATE)
	private Date krankheit_von;
	@Temporal(TemporalType.DATE)
	private Date krankheit_bis;

	/**
	 * <b>connection to the table Mitarbeiter:</b>
	 * <ul>
	 * <li>Mitarbeiter 1:n Krankheit</li>
	 * <li>one Mitarbeiter has no, one ore more Krankheitstage</li>
	 * <li>one Krankheitstag has one Mitarbeiter</li>
	 * <li>mit_id is foreign key and referential integrity is on</li>
	 * </ul>
	 */
	@ManyToOne
	@JoinColumn(name = "mit_id", nullable = false)
	private Mitarbeiter mitarbeiter;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Date getKrankheit_von() {
		return krankheit_von;
	}

	public void setKrankheit_von(Date krankheit_von) {
		this.krankheit_von = krankheit_von;
	}

	public Date getKrankheit_bis() {
		return krankheit_bis;
	}

	public void setKrankheit_bis(Date krankheit_bis) {
		this.krankheit_bis = krankheit_bis;
	}

	public Mitarbeiter getMitarbeiter() {
		return mitarbeiter;
	}

	public void setMitarbeiter(Mitarbeiter mitarbeiter) {
		this.mitarbeiter = mitarbeiter;
	}
}
